home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The Games Machine 76
/
XENIATGM66.iso
/
Indiana Jones
/
Indiana Jones.exe
/
RESOURCE
/
PREVIEW.GOB
/
cog_tem_tiki2door.cog
< prev
next >
Wrap
Text File
|
1999-11-15
|
9KB
|
364 lines
# Jones 3D Cog Script
#
# TEM_Tiki2Door.cog
#
# monkeykey = 54
#
# [TRM]
#
# (C) 1999 LucasArts Entertainment Co. All Rights Reserved
# ========================================================================================
symbols
message startup
message entered
message exited
message activate
thing player local
thing door0
thing door1
thing ghostcampos
thing lSpotOffset
thing rSpotOffset
thing insideOffset
thing indy
sector doorSec
sector close
surface surf_LSpot
surface surf_RSpot
# ** using the wrong or no item lines (whichLine = 1) **
sound in_WrongLine0=Inxj089.wav local # That didn't work
sound in_WrongLine1=Inxj090.wav local # ...something wrong.
sound in_WrongLine2=Inxj092.wav local # Hmm...didn't quite work.
sound in_WrongLine3=Inxj060.wav local # I don't think...right answer
sound in_WrongLine4=Inxj087.wav local # Whoops.
sound in_WrongLine5=Inxj088.wav local # Nope.
sound in_WrongLine6=Inxj091.wav local # Of course that didn't work.
# ** locked door lines (whichLine = 2) **
sound in_DoorLocked0=Inxj081.wav local # Oh no...why...always locked?
sound in_DoorLocked1=Inxj076.wav local # This door is locked
sound in_DoorLocked2=Inxj077.wav local # it's locked
sound in_DoorLocked3=Inxj077.wav local # It's locked.
sound in_DoorLocked4=Inxj078.wav local # Locked.
sound in_DoorLocked5=Inxj082.wav local # keyhole here...just need key.
sound in_DoorLocked6=Inxj080.wav local # Locked...luck never changes.
# ** success key lines (whichLine = 3) **
sound in_Success0=Inxj103.wav local # Whoa! It opened.
sound in_Success1=Inxj111.wav local # what...know...worked!
sound in_Success2=Inxj106.wav local # ...got lucky.
sound in_Success3=Inxj105.wav local # ...be damned...opened.
# ** just won't open lines (whichLine = 4) **
sound in_WontOpen0=Inxj096.wav local # I can't open it
sound in_WontOpen1=Inxj097.wav local # For some reason...won't open.
sound in_WontOpen2=Inxj098.wav local # It won't budge.
sound in_WontOpen3=Inxj099.wav local # Something is holding this door closed.
sound in_WontOpen4=Inxj102.wav local # must be way...don't know how.
sound sndUnlock=tem_monkeykey_unlock_c.wav local
sound inAgain=Inxj096.wav local # I can't open it.
# ** music **
sound mus_AweInspiring=mus_tem_tiki2int.wav local
cog ambTiki2
cog cog_Hint
# ** subroutines **
flex openDoor local
flex noWayOut local
flex speak local
int open=0 local
int closed=0 local
int playing=0 local
int firstTime=0 local
int whichLine=0 local
int curCam local
int curItem local
int newComment local
int oldComment local
int lSpot=0 local
int rSpot=0 local
int firstVisit=0 local
end
# ========================================================================================
code
startup:
player = GetLocalPlayerThing();
SectorAdjoins(doorSec, 0);
return;
# ========================================================================================
entered:
if(GetSenderRef() == surf_LSpot)
{
lSpot = 1;
}
else if(GetSenderRef() == surf_RSpot)
{
rSpot = 1;
}
# close the door when player enters room
else if((GetSenderRef() == close) && (closed == 0))
{
closed = 1;
#SetFog(0, '0.20, 0.20, 0.20', 30, 100);
Rotate(door0, -90, 1, 5.0);
Rotate(door1, 90, 1, 5.0);
WaitForStop(door1);
SectorAdjoins(doorSec, 0);
}
return;
# ========================================================================================
exited:
if(GetSourceRef() == player)
{
if(GetSenderRef() == surf_LSpot)
{
lSpot = 0;
}
else if(GetSenderRef() == surf_RSpot)
{
rSpot = 0;
}
}
return;
# ========================================================================================
activate:
player = GetLocalPlayerThing();
curCam = GetCurrentCamera();
curItem = GetCurItem(player);
if((GetSenderRef() == door0) || (GetSenderRef() == door1))
{
if((open == 0) && (playing == 0))
{
if(curItem == 54)
{
open = 1;
Call openDoor;
}
# player doesn't have or is not using the key
else if(curItem == 0)
{
playing = 1;
whichLine = 2;
Call speak;
whichLine = 0;
}
else
{
playing = 1;
whichLine = 1;
Call speak;
whichLine = 0;
}
}
# player can't get back out of room
else if((closed == 1) && (playing == 0))
{
playing = 1;
Call noWayOut;
}
}
return;
# ========================================================================================
openDoor:
# solve hint31
SendMessage(cog_Hint, user0);
# do cutscene stuff
MakeMeStop();
StartCutscene(2);
DeselectWeaponWait(player);
# activate door
PlayMode(player, 60, 0);
Sleep(0.3);
# remove key from inventory
ChangeInv(player, 54, -1);
# play unlock sound
PlaySoundLocal(sndUnlock, 1.0, 0.0, 0x0, 1);
# clear door adjoin
SectorAdjoins(doorSec, 1);
# open doors
Rotate(door0, 90, 1, 5.0);
Rotate(door1, -90, 1, 5.0);
# switch to external camera
SetCameraFocus(2, ghostcampos);
SetCameraSecondaryFocus(2, indy);
SetCurrentCamera(2);
# hide player show indy
SetThingFlags(player, 0x80000);
ClearThingFlags(indy, 0x80000);
# move camera in as doors open
MoveToFrame(ghostcampos, 1, 0.9);
WaitForStop(door1);
Sleep(0.5);
# say success line
PlayVoice(indy, in_Success0[RandBetween(0, 3)], 1.0, 1);
Sleep(0.5);
CopyOrientAndPos(indy, player);
# hide actor show player
SetThingFlags(indy, 0x80000);
ClearThingFlags(player, 0x80000);
# restore camera
SetCurrentCamera(curCam);
# play music cue after camera is returned to player????
PlaySoundLocal(mus_AweInspiring, 1.0, 0.0, 0x0, 0);
# restore controls
ClearActorFlags(player, 0x200000);
EndCutscene();
# turn on tiki2 room ambients
SendMessage(ambTiki2, user0);
return;
# ========================================================================================
noWayOut:
# do cutscene stuff
MakeMeStop();
StartCutscene(2);
# offset camera
SetExtCamOffsetToThing(insideOffset);
DeselectWeaponWait(player);
# nudge door
PlayMode(player, 60, 0);
Sleep(0.3);
# play voice line
PlayVoice(player, in_WontOpen0[RandBetween(0, 4)], 1.0, 1);
Sleep(0.5);
# restore camera
RestoreExtCam();
# restore controls
ClearActorFlags(player, 0x200000);
EndCutscene();
playing = 0;
return;
# ========================================================================================
speak:
while (newComment == oldComment)
{
newComment = RandBetween(0, 2);
}
if(firstVisit == 0)
{
firstVisit = 1;
}
oldComment = newComment;
# do cutscene stuff
MakeMeStop();
StartCutscene(0);
# switch to interpCam
if(lSpot == 1) SetExtCamOffsetToThing(lSpotOffset);
else if(rSpot == 1) SetExtCamOffsetToThing(rSpotOffset);
DeselectWeaponWait(player);
# nudge the door
PlayMode(player, 60, 0);
Sleep(0.3);
if(whichLine == 1)
{
# using the wrong item
PlayVoice(player, in_WrongLine0[newComment], 1.0, 1);
}
else if(whichLine == 2)
{
# locked door lines
PlayVoice(player, in_DoorLocked0[newComment], 1.0, 1);
}
else if(whichLine == 3)
{
# door is open
PlayVoice(player, in_Success0[newComment], 1.0, 1);
}
# restore controls and camera
ClearActorFlags(player, 0x200000);
RestoreExtCam();
EndCutscene();
playing = 0;
return;
# ========================================================================================
end